package cn.shiwei.feignclient;

import cn.shiwie.domain.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

@FeignClient(value = "USER-SERVER", fallbackFactory = UserFeignClientFallbackFactory.class)
public interface UserFeignClient {

    /**
     * 根据服务名可以找到这个模块, 根据请求类型和url找到具体方法
     * @param id
     * @return
     */
    @GetMapping("/getById/{id}")
    User getById(@PathVariable("id") Long id);

//    /**
//     *  第一种
//     * feign client 的降级方法就是自己这个接口的实现类的对应方法(这里是静态内部类, 可以写其他的)
//     */
//    static class UserFeignFallback implements UserFeignClient{
//
//        @Override
//        public User getById(Long id) {
//            return null;
//        }
//    }
}
